GATE Compiler Design